#include <string>

using namespace std;

double Horner(double);
double HornerLiniowy(double);
double HornerWielomian(double);
double Sinus(double);
double SinusZlo(double);
void WyswietlFunkcje(string[], int &, int);
void PodajPrzedzialOrazDokladnosc(double &, double &, double &);
double f(int, double);
double Potega(double, int);
double Silnia(double);
double SymbolNewtona(double, double);
double NewtonCotes(double, double, double, int);
double t(double, double, double);
double Legendre(double, double, int, double[], double[], int);


double (*funkcje_tab[])(double) = {HornerLiniowy, HornerWielomian, Sinus, SinusZlo};

double tab_wspol1[] = {3, -1};       //tablica wspolczynnikow pierwszego wielomianu w tablicy funkcje
double tab_wspol2[] = {1, -5, 2, 8}; // -1, 2, 4 - miejsca zerowe //tablica wspolczynnikow drugiego wielomianu w tablicy funkcje
int n1 = 2;                          //dlugosc tablicy tab_wspol1
int n2 = 4;                          //dlugosc tablicy tab_wspol2

string funkcje[] = {"3*x - 1",
                        "x**3 - 5*x*x + 2*x + 8",
                        "sin(x)",
                        "sin(3*x-1)"};   //tablica funkcji do wyboru
int nf = 4;                          //dlugosc tablicy funkcje

double X2 [] = {-0.577350, 0.577350};
double X3 [] = {-0.774597, 0, 0.774597};
double X4 [] = {-0.861136, -0.339981, 0.339981, 0.861136};
double X5 [] = {-0.906180, -0.538469, 0, 0.538469, 0.906180};

double A2 [] = {1, 1};
double A3 [] = {0.555555, 0.888888, 0.555555};
double A4 [] = {0.347855, 0.652145, 0.652145, 0.347855};
double A5 [] = {0.236927, 0.478629, 0.568889, 0.478629, 0.236927};

int ktora_funkcja;
double a, b, eps;
